/*
 #
 #  Files       : test.cpp
 #                ( C++ source file )
 #
 #  Description : The SmallMatrix Library
 #                ( http://code.google.com/p/smallmatrix )
 #
 #  Copyright   : Olivier Juan
 #                ( http://www.mas.ecp.fr/vision/Personnel/juan/ )
 #
 #  License     : CeCILL-C
 #                ( http://www.cecill.info/licences/Licence_CeCILL-C_V1-en.html )
 #
 #  This software is governed by the CeCILL-C license under French law and
 #  abiding by the rules of distribution of free software.  You can  use,
 #  modify and or redistribute the software under the terms of the CeCILL-C
 #  license as circulated by CEA, CNRS and INRIA at the following URL
 #  "http://www.cecill.info".
 #
 #  As a counterpart to the access to the source code and  rights to copy,
 #  modify and redistribute granted by the license, users are provided only
 #  with a limited warranty  and the software's author,  the holder of the
 #  economic rights,  and the successive licensors  have only  limited
 #  liability.
 #
 #  In this respect, the user's attention is drawn to the risks associated
 #  with loading,  using,  modifying and/or developing or reproducing the
 #  software by the user in light of its specific status of free software,
 #  that may mean  that it is complicated to manipulate,  and  that  also
 #  therefore means  that it is reserved for developers  and  experienced
 #  professionals having in-depth computer knowledge. Users are therefore
 #  encouraged to load and test the software's suitability as regards their
 #  requirements in conditions enabling the security of their systems and/or
 #  data to be ensured and,  more generally, to use and operate it in the
 #  same conditions as regards security.
 #
 #  The fact that you are presently reading this means that you have had
 #  knowledge of the CeCILL-C license and that you accept its terms.
 #
*/

#include <iostream>
#include <SmallMatrix/SmallMatrix.h>
using namespace std;
using namespace SmallMatrix;

#define VECTEUR_TEST
#define IO_TEST

int main()
{
	reel tab[9]={- 0.239841f, 0.883069f , 0.673098f , - 205.84f , - 1238.25f  , 37.1273f, - 0.239841f   , 0.883069f  ,  0.673098f};
	reel tab10[10]={1151.3f,-61.416f,-884.13f,327.55f,2088.5f,263.47f,0.66576f,-0.16644f,0.66576f,0.3f};
	reel tab12[12]={11.3f,-61.416f,-8.13f,3.55f,20.5f,2.47f,0.66576f,-0.16644f,0.66576f,0.3f,0.5f,-2.3f};
	reel tab16[16]={11.3f,-61.416f,-8.13f,3.55f,20.5f,2.47f,0.66576f,-0.16644f,0.66576f,0.3f,0.5f,-2.3f, 5.1f, .45f, -3.1f, 2.4f};

	Vector<reel, 2> V1(5.0f, 4.0f);
	std::cout << V1[0] << "\t" << V1[1] << std::endl;
	std::cout << V1(0) << "\t" << V1(1) << std::endl;
//	SquareMatrix<3> temp3 (tab);
//	cout << temp3.det() <<endl;
//	Matrix<3,4> M34(tab16);
//#ifdef VECTEUR_TEST
//	Vecteur<10> VV10(tab10);
//	Vecteur<3> V1(tab);
//	Vecteur<3> V2(reel(2.5));
//	cout<<V1<<endl;
//	cout<<V2<<endl;
//	Vecteur<3>  V3;
//	V3=reel(1.0);
//	cout<<V3<<endl;
//	V3=V1;
//	cout<<V3<<endl;
//	V3=-V1;
//	cout<<V3<<endl;
//	V3=V1*reel(2.0);
//	cout<<V3<<endl;
//	V3=V1/reel(2.0);
//	cout<<V3<<endl;
//	V3*=reel(2.0);
//	cout<<V3<<endl;
//	V3/=reel(2.0);
//	cout<<V3<<endl;
//	V3 = V1+V2;
//	cout<<V3<<endl;
//	V3 += V1+V2;
//	cout<<V3<<endl;
//	V3 -= V1+V2;
//	cout<<V3<<endl;
//#endif
//
//#ifdef IO_TEST
//
//	Vecteur<3> vect3D_1 ;
//	SquareMatrix<2> m22 ;
//	cout << "Enter a vector (dim 3) : " << endl;
//	cin >> vect3D_1 ;
//	cout << endl << "vector : " << endl << vect3D_1 << endl;
//
//	cout << "Enter a matrix (dim 2x2) : " << endl;
//	cin >> m22 ;
//	cout << endl << "matrix : " << endl << m22 << endl;
//#endif
//	SymMatrix<3> Sym3(tab);
//	SymMatrix<3> Sym4(tab);
//	SquareMatrix<3> Sym5 = Sym3*Sym4;
	return 0;
}